﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sebrae.Academico.Trilhas.BM.Classes;
using Sebrae.Academico.Trilhas.Dominio.Classes;




namespace Sebrae.Academico.Trilhas.BP.Services
{
    public class AtividadeFormativaServices: BusinessProcessServicesBase
    {

        private BMTrilhaAtividadeInformativaParticipacao trilhaAtividadeFormativaParticipacao;
        private BMTrilhaTopicoTematico trilhaTopicoTematico;
        private BMUsuarioTrilha usuarioTrilha;

        public AtividadeFormativaServices(): base()
        {

        }


        public void CadastrarAtividadeFormativa(int pUsuarioTrilha, int pTopicoTematico, string pTextoParticipacao,
                                                string pNomeArquivo, string pTipoArquivo, string pCaminhoArquivo, string LoginUsuarioAtualizacao)
        {

            try {

            trilhaAtividadeFormativaParticipacao = new BMTrilhaAtividadeInformativaParticipacao(unitOfWork);
            usuarioTrilha = new BMUsuarioTrilha(unitOfWork);
            usuarioBM = new BMUsuario(unitOfWork);
            trilhaTopicoTematico = new BMTrilhaTopicoTematico(unitOfWork);


            TrilhaAtividadeInformativaParticipacao atividade = new TrilhaAtividadeInformativaParticipacao()
            {
                ID = 0,
                DataAlteracao = DateTime.Now,
                Status = "0",
                TextoParticipacao = pTextoParticipacao,
                TrilhaTopicoTematico = trilhaTopicoTematico.ObterPorID(pTopicoTematico),
                NomeCaminhoArquivoParticipacao = pCaminhoArquivo,
                TipoArquivoParticipacao = pTipoArquivo,
                ArquivoParticipacao = pNomeArquivo,
                Usuario = usuarioBM.ObterUsuarioPorCPF(LoginUsuarioAtualizacao),
                UsuarioTrilha = usuarioTrilha.ObterPorId(pUsuarioTrilha)

            };

            
                
            trilhaAtividadeFormativaParticipacao.ValidaAtividadeFormativaParticipacao(atividade);

            trilhaAtividadeFormativaParticipacao.InserirAtividadeFormativaParticipacao(atividade);
            
            }
            catch(Exception ex) 
            {
                throw ex;
            }
        }


        public IList<TrilhaAtividadeInformativaParticipacao> BuscarListaAtividadeInformativaParticipacao(int pUsuarioTrilha, int pTopicoTematico)
        {

            trilhaAtividadeFormativaParticipacao = new BMTrilhaAtividadeInformativaParticipacao(unitOfWork);
            usuarioTrilha = new BMUsuarioTrilha(unitOfWork);
            trilhaTopicoTematico = new BMTrilhaTopicoTematico(unitOfWork);


            TrilhaAtividadeInformativaParticipacao atividade = new TrilhaAtividadeInformativaParticipacao()
            {
                UsuarioTrilha = usuarioTrilha.ObterPorId(pUsuarioTrilha),
                TrilhaTopicoTematico = trilhaTopicoTematico.ObterPorID(pTopicoTematico)
            };

            return trilhaAtividadeFormativaParticipacao.ObterTrilhaAtividadeFormativaParticipacaoPorFiltro(atividade);


        }
    }
}
